package com.xxg.renrencommon.exception.exceptionenum;


/**
 * 订单管理返回代码枚举
 *
 * @author xxg
 * @date 2020/11/16
 */
public enum OrderExceptionCodeCodeEnum implements ReturnExceptionCode {
    /**
     * 参数错误
     */
    INVALID_PARAMETER("参数错误", 1),
    /**
     * 提交售后申请成功
     */
    APPLY_AFTER_SALES_SUCCESS("提交售后申请成功", 200),
    /**
     * 编辑售后申请成功
     */
    EDIT_AFTER_SALES_SUCCESS("编辑售后申请成功", 200),
    /**
     * 收货成功
     */
    COMMIT_SUCCESS("收货成功", 200),
    /**
     * 提交物流信息成功
     */
    APPLY_AFTER_SALES_EXPRESS_SUCCESS("提交物流信息成功", 200),
    /**
     * 提交售后申请失败
     */
    APPLY_AFTER_SALES_ERROR("提交售后申请失败", 800),
    /**
     * 更新订单物流信息失败
     */
    SET_ORDER_EXPRESS_ERROR("更新订单物流信息失败", 801),
    /**
     * 提交订单失败
     */
    SUBMIT_ORDER_ERROR("提交订单失败", 802),
    /**
     * 支付异常
     */
    PAY_ERROR("支付异常", 803),
    /**
     * 退款异常
     */
    REFUND_ERROR("退款异常", 804),
    /**
     * 查询订单支付状态异常
     */
    QUERY_PAY_ORDER_ERROR("查询订单支付状态异常", 805),
    /**
     * 查询订单退款状态异常
     */
    QUERY_REFUND_ERROR("查询订单退款状态异常", 806),
    /**
     * 结算异常
     */
    SETTLE_ACCOUNT_ERROR("结算异常", 807),
    /**
     * 非VIP用户结算异常
     */
    NON_VIP_SETTLE_ACCOUNT_ERROR("充值VIP后才能购买特供专区商品", 807),
    /**
     * 获取有未完成订单的客户列表异常
     */
    GET_CUSTOMER_LIST_ERROR("获取有未完成订单的客户列表异常", 808),
    /**
     * 版本过低，请更新APP后重新下单
     */
    APP_NEED_REFRESH("版本过低，请更新APP后重新下单", 809),
    /**
     * 订单改价失败
     */
    EDIT_ORDER_PRICE_ERROR("订单改价失败", 810),
    /**
     * 订单审核异常
     */
    VERIFY_AFTER_ORDER_ERROR("订单审核异常", 811),
    /**
     * 获取订单运费异常
     */
    CALC_ORDER_EXPRESS_FEE_ERROR("获取订单运费异常", 812),
    /**
     * 编辑售后订单异常
     */
    EDIT_AFTER_SALES_ERROR("编辑售后订单异常", 813),
    /**
     * 撤销售后订单异常
     */
    CANCEL_AFTER_SALES_ERROR("撤销售后订单异常", 814),
    /**
     * 填写退货物流信息异常
     */
    SET_RETURN_EXPRESS_ERROR("填写退货物流信息异常", 815),
    /**
     * 拼团信息异常
     */
    GROUP_BUY_INFO_ERROR("拼团信息异常", 816),
    /**
     * 该员工已存在订单包
     */
    HAS_ORDER_PACKAGE("该员工已存在订单包", 817),
    /**
     * 非员工身份，无法创建
     */
    NOT_EMPLOYEE("非员工身份，无法创建", 818),
    /**
     * 添加订单包失败
     */
    ADD_ORDER_PACKAGE_FAIL("添加订单包失败", 818),
    /**
     * 推送订单包失败
     */
    PUSH_ORDER_PACKAGE_FAIL("推送订单包失败", 819),
    /**
     * 推送订单包审核未通过
     */
    ORDER_PACKAGE_VERIFY_FAIL("推送订单包审核未通过", 820),
    /**
     * 无订单包审核权
     */
    NO_ORDER_PACKAGE_VERIFY("无订单包审核权", 821),
    /**
     * 无订单包审核权
     */
    NO_ORDER_PACKAGE_VERIFY_STATUS_ERROR("订单包审核状态非法", 822),
    /**
     * 订单包获取失败
     */
    ORDER_PACKAGE_GET_ERROR("订单包获取失败", 823),
    /**
     * 支付成功
     */
    PAY_SUCCESS("支付成功", 200),
    /**
     * 已付款
     */
    PAID("已付款", 200),
    /**
     * 未付款
     */
    UN_PAID("未付款", 200),
    /**
     * 已退款
     */
    REFUND("已退款", 200),
    /**
     * 未退款
     */
    UN_REFUND("未退款", 200),
    /**
     * 服务内部异常
     */
    INTERNAL_ERROR("服务内部异常", 500),
    /**
     * 未找到用户或用户处于不可用状态
     */
    NO_USER_OR_USER_ILLEGAL("未找到用户或用户处于不可用状态", 2300),
    /**
     * 厂家无法购买
     */
    FACTORY_USER_CAN_NOT_BUY("厂家无法购买", 2301),
    /**
     * 商品所在店处于非正常状态
     */
    GOODS_UNDER_ILLEGAL_SHOP("商品所在店处于非正常状态", 2302),
    /**
     * 商品处于非正常状态
     */
    GOODS_ILLEGAL("商品处于非正常状态", 2303),
    /**
     * 商品库存不足
     */
    GOODS_STOCK_NOT_ENOUGH("商品库存不足", 2304),
    /**
     * 订单不存在
     */
    ORDER_NOT_EXISTS("订单不存在", 2305),
    /**
     * 带货订单需要选择是否自己筹集商品
     */
    CARRY_ORDER_NEED_CHOOSE_CARRY_BY_SELF("带货订单需要选择是否自己筹集商品", 2306),
    /**
     * 不支持的售后类型
     */
    UN_SUPPORT_AFTER_SALES_TYPE("不支持的售后类型", 2307),
    /**
     * 当前订单状态、售后类型与售后原因不匹配
     */
    ORDER_STATUS_TYPE_REASON_NOT_MATCH("当前订单状态、售后类型与售后原因不匹配", 2308),
    /**
     * 商品不存在
     */
    SKU_NOT_EXISTS("商品不存在", 2309),
    /**
     * 申请数量不能超过限制
     */
    NUMBER_TOO_MANY("申请数量不能超过限制", 2310),
    /**
     * 订单完成已超过设定期限，无法申请此类型售后
     */
    ORDER_EXPIRE_DAYS("订单完成已超过设定期限，无法申请此类型售后", 2311),
    /**
     * 此前已处理完成仅退款(协商退款)的售后申请，不能再继续申请仅退款/退货退款售后
     */
    ONLY_ONCE("此前已处理完成仅退款(协商退款)的售后申请，不能再继续申请仅退款/退货退款售后", 2312),
    /**
     * applyReturnPay不能为null
     */
    APPLY_RETURN_PAY_CANNOT_NULL("applyReturnPay不能为null", 2313),
    /**
     * 申请金额不能超过最大可申请金额
     */
    APPLY_RETURN_PAY_TOO_MUCH("申请金额不能超过最大可申请金额", 2314),
    /**
     * 申请已被永久拒绝
     */
    FOREVER_REJECTED("申请已被永久拒绝", 2315),
    /**
     * 当前仍有售后申请未执行结束
     */
    HAS_UNFINISHED_AS_ORDERS("当前仍有售后申请未执行结束", 2316),
    /**
     * 此前已处理完成其他的售后申请，不能再继续申请仅退款/退货退款售后
     */
    HAS_OTHER_AFTER_SALES("此前已处理完成其他的售后申请，不能再继续申请仅退款/退货退款售后", 2317),
    /**
     * 待发货、待收货、已完成15天内的订单才允许申请退款
     */
    ORDER_STATUS_ERROR1("待发货、待收货、已完成15天内的订单才允许申请退款", 2318),
    /**
     * 待收货、已完成30天内的订单才允许申请补寄配件
     */
    ORDER_STATUS_ERROR6("待收货、已完成30天内的订单才允许申请补寄配件", 2319),
    /**
     * 待收货、已完成15天内的订单才允许申请退货退款
     */
    ORDER_STATUS_ERROR2("待收货、已完成15天内的订单才允许申请退货退款", 2320),
    /**
     * 待收货、已完成1年内的订单才允许申请维修
     */
    ORDER_STATUS_ERROR3("待收货、已完成1年内的订单才允许申请维修", 2321),
    /**
     * 待收货、已完成30天内的订单才允许申请换货
     */
    ORDER_STATUS_ERROR4("待收货、已完成30天内的订单才允许申请换货", 2322),
    /**
     * 待收货的订单才允许申请补寄
     */
    ORDER_STATUS_ERROR5("待收货的订单才允许申请补寄", 2323),
    /**
     * 售后订单所属用户id有误
     */
    AFTER_SALES_USER_ID_ERROR("售后订单所属用户id有误", 2324),
    /**
     * 只有审核不通过的售后才允许修改
     */
    ONLY_REJECTED_CAN_EDIT("只有审核不通过的售后才允许修改", 2325),
    /**
     * 售后订单不存在
     */
    AFTER_SALES_NOT_EXISTS("售后订单不存在", 2326),
    /**
     * 只有待审核的售后才允许撤销
     */
    ONLY_UN_VERIFY_CAN_CANCEL("只有待审核的售后才允许撤销", 2327),
    /**
     * 请检查售后订单状态
     */
    CHECK_AFTER_SALES_STATUS("请检查售后订单状态", 2328),
    /**
     * 订单正在处理
     */
    ORDER_UNDER_DOING("订单正在处理", 2329),
    /**
     * 当前设置还未完成
     */
    SET_COMMISSION_KEY_DUP("当前设置还未完成", 2330),
    ;
    /**
     * 枚举的名称
     */
    private final String name;
    /**
     * 枚举的代码
     */
    private final int code;

    OrderExceptionCodeCodeEnum(String name, int code) {
        this.name = name;
        this.code = code;
    }

    @Override
    public String getName() {
        return name;
    }

    @Override
    public int getCode() {
        return code;
    }

    @Override
    public String toString() {
        return this.code + "_" + this.name;
    }
}
